let App = getApp();
/**
 * @param APP {  type Object } App 中的 app 实例对象;
 */

/**
 * @param {*} data
 * 拦截器  默认 开启  如没设置拦截器  设置 data 请求体参数
 */
/**
 *@param  url  当前请求路径
 *@param data 请求体参数
 *@param cance 是否缓存
 *@param header  请求头
 *@param is_request 拦截器 false 执行 true 不执行
 *@param  is_response 响应拦截 false 行 true 不执行
 *@param app_configs { type Object  } 当前页面实例对象
 */
//  获取列表方法  list datail 
const getPageList = async (data) => {
  const app_configs = await App.getPage();
  return new Promise((reslove, reject) => {
    data.path = app_configs.route;
    App.test()
      .post(
        "/open/wx_app_api/getPage",
        data,
        false,
        {
          header: "",
          //  配置 请求头 之类的, 之类的一些数据
        },
        false,
        false,
        app_configs
      )
      .then((res) => {
        reslove(res);
      });
  });
};
// 登录
const isLogin = async (url, data) => {
  // url = "/open/wx_app_api/login";
  return new Promise((reslove, reject) => {
    App.test()
      .post(
        url,
        data,
        false,
        {
          header: "",
          //  配置 请求头 之类的, 之类的一些数据
        },
        false,
        false,
        ''
      )
      .then((res) => {
        reslove(res);
      });
  });
};
//  /open/wx_app_api/delClap 删除随手拍
const delClap = async (url, data) => {
  url = "/open/wx_app_api/delClap";
  return new Promise((reslove, reject) => {
    const s_f = (res) => {
      reslove(res);
    };
    const x_f = (err) => {
      reject(err);
    };
    App._post(url, data, s_f, x_f);
  });
};
//公共请求方法
const requestApi = (url, data,is_login, header, before, intercept, cache) => {
  header = header ? header : { header: "" };
  cache = cache ? cache : false;
  before = before ? before : true;
  intercept = intercept ? intercept : true;
  is_login = is_login ? is_login : false;
  let Account = wx.getStorageSync('Account');
  data = Object.assign(data,{token:Account.token,openid:Account.openid})
  return new Promise((reslove, reject) => {
    App.test()
      .post(
        //请求url
        url,
        //业务参数
        data,
        //是否缓存
        cache,
        //请求头
        header,
        //before 请求前执行函数 wx_request.RequestIntereptor.use(async (config, ...args)  false 执行
        before,
        //请求结果返回后，wx_request.ResponseIntereptor.use( async(response, ...args)（拦截器） false 执行
        intercept,
        ''
      )
      .then((res) => {
        if(isLogin && res.code == 101){
          wx.navigateTo({
            url: '/pages/auth/login/index'
          })
        }else{
          reslove(res);
        }
      });
  });
};
module.exports = {
  getPageList,
  isLogin,
  delClap,
  requestApi
};
